﻿using System.Collections.Generic;
using System.ServiceModel;
using DevFramework.Entities.Concrete;
using DevFramework.Entities.ComplexType;
using DevFramework.Entities.Concrete;

namespace DevFramework.Business.Abstract
{
    [ServiceContract]
    public interface IProductService
    {
        [OperationContract]
        List<Product> GetAll();

        [OperationContract]
        Product Get(int id);

        [OperationContract]
        List<Product> GetByCategory(int categoryId);

        [OperationContract]
        Product Add(Product product);

        [OperationContract]
        void Update(Product product);

        [OperationContract]
        void Delete(Product product);

        [OperationContract(Name = "AddWithCategory")]
        Product Add(Product product, Category category);

        [OperationContract]
        List<ProductDetail> GetWithCategory();

        [OperationContract]
        List<Product> GetWithSp(int stok);

        void UpdateDate();
    }
}
